package com.pt.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.pt.entity.Peer;

import java.util.List;

/**
 * Peer服务接口
 */
public interface PeerService extends IService<Peer> {
    
    /**
     * 更新Peer状态
     */
    void updatePeerStatus(String infoHash, Long userId, String ip, Integer port, 
                         Long uploaded, Long downloaded, Long left, String event, String userAgent);
    
    /**
     * 移除Peer
     */
    void removePeer(String infoHash, Long userId);
    
    /**
     * 获取Peer列表
     */
    List<Peer> getPeers(String infoHash, Long excludeUserId, Integer maxPeers);
    
    /**
     * 统计做种者数量
     */
    int countSeeders(String infoHash);
    
    /**
     * 统计下载者数量
     */
    int countLeechers(String infoHash);
    
    /**
     * 获取用户的Peer信息
     */
    Peer getUserPeer(String infoHash, Long userId);
    
    /**
     * 获取所有Peer
     */
    List<Peer> getAllPeersForInfoHash(String infoHash);
    
    /**
     * 清理过期Peer
     */
    void cleanExpiredPeers();
    
    /**
     * 根据info_hash获取Peer列表
     */
    List<Peer> getPeersByInfoHash(String infoHash, Integer limit);
    
    /**
     * 获取种子的peer列表
     */
    List<Peer> getPeersForTorrent(String infoHash, Integer numwant);
} 